/**
 * 格式化货币显示
 * @param {Number|String} value - 需要格式化的值
 * @param {String} currency - 货币符号，默认¥
 * @param {Number} decimals - 保留的小数位数，默认2
 * @returns {String} 格式化后的货币字符串
 */
export const formatCurrency = (value, currency = '¥', decimals = 2) => {
    if (!value && value !== 0) return '';
    
    // 将值转换为数字
    const num = typeof value === 'string' ? parseFloat(value) : value;
    
    // 检查是否为有效数字
    if (isNaN(num)) return '';
    
    // 处理小数位数
    const digits = Math.pow(10, decimals);
    const formattedValue = Math.round(num * digits) / digits;
    
    // 格式化数字为带千分位的字符串
    const parts = formattedValue.toString().split('.');
    parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ',');
    
    // 补充小数位
    if (decimals > 0) {
      parts[1] = parts[1] || '';
      if (parts[1].length < decimals) {
        parts[1] = parts[1].padEnd(decimals, '0');
      } else {
        parts[1] = parts[1].substring(0, decimals);
      }
    }
    
    return `${currency}${parts.join('.')}`;
  };
  
  /**
   * 格式化数字显示（添加千分位）
   * @param {Number|String} value - 需要格式化的值
   * @param {Number} decimals - 保留的小数位数，默认0
   * @returns {String} 格式化后的数字字符串
   */
  export const formatNumber = (value, decimals = 0) => {
    if (!value && value !== 0) return '';
    
    // 将值转换为数字
    const num = typeof value === 'string' ? parseFloat(value) : value;
    
    // 检查是否为有效数字
    if (isNaN(num)) return '';
    
    // 处理小数位数
    const digits = Math.pow(10, decimals);
    const formattedValue = Math.round(num * digits) / digits;
    
    // 格式化数字为带千分位的字符串
    const parts = formattedValue.toString().split('.');
    parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ',');
    
    // 处理小数位
    if (decimals > 0) {
      parts[1] = parts[1] || '';
      if (parts[1].length < decimals) {
        parts[1] = parts[1].padEnd(decimals, '0');
      } else {
        parts[1] = parts[1].substring(0, decimals);
      }
      return parts.join('.');
    }
    
    return parts[0];
  };
  